package com.hksj.lntm.mapper;

import com.hksj.common.config.annotation.DS_TAOS;
import com.hksj.lntm.dto.LiquidNitrogenCockpitDTO;
import com.hksj.lntm.vo.LiquidNitrogenAlarmDeviceInfoVO;
import com.hksj.lntm.vo.LiquidNitrogenCurrentAlarmDeviceVO;
import com.hksj.lntm.vo.LiquidNitrogenDeviceHistoryDataVO;
import com.hksj.lntm.vo.LiquidNitrogenTemperatureAlarmNumTrendVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fjt
 * @data 2024/11/12 9:38
 * @describe
 */
@Mapper
public interface LiquidNitrogenCockpitMapper {

    /**
     * 告警次数趋势
     * @param dto
     * @return
     */
    List<LiquidNitrogenTemperatureAlarmNumTrendVO> queryAlarmTrend(@Param("query")LiquidNitrogenCockpitDTO dto);

    /**
     * 查询在线设备数量
     * @param dto
     * @return
     */
    Integer queryOnlineNum(@Param("query")LiquidNitrogenCockpitDTO dto);

    /**
     * 查询当前报警中的设备id和属性
     * @param dto
     * @return
     */
    List<LiquidNitrogenCurrentAlarmDeviceVO> queryCurrentAlarmDeviceIdAndProperty(@Param("query")LiquidNitrogenCockpitDTO dto);

    /**
     * 查询在指定的设备集合中，当前处于报警中的设备情况
     * @param list
     * @return
     */
    List<LiquidNitrogenAlarmDeviceInfoVO> queryCurrentAlarmDeviceInfoList(List<String> list);

    /**
     * 批量查询指定设备的历史监测数据(按时间戳升序)
     * @param dto
     * @param tableName
     * @return
     */
    @DS_TAOS
    List<LiquidNitrogenDeviceHistoryDataVO> queryHistoryData(@Param("query")LiquidNitrogenCockpitDTO dto, @Param("tableName")String tableName);

}
